jQuery(document).ready(function()
    {
	// Por defecto, el formulario para modificar una capacidad se encuentra oculto.
	jQuery("#table_edicion").hide();

	// Asigno los comportamientos a los campos de capacidad y fechas.
	jQuery("#form_abm input[name='capacidad']").seaBehavior( "integer",
			{"groupingCharacter" : '.', "minValue" : 0 },
			{"errorClass" : "error"} );
	jQuery("#form_uteco input.capacidadPorDefecto").seaBehavior( "integer",
			{"groupingCharacter" : '.', "minValue" : 0 },
			{"errorClass" : "error"} );

	jQuery("#form_abm input[name='fecha_inicio']").datepicker( {showAnim: "slideDown", dateFormat: "dd/mm/yy"} );
	jQuery("#form_abm input[name='fecha_fin']").datepicker( {showAnim: "slideDown", dateFormat: "dd/mm/yy"} );

	jQuery("#form_abm input[name='fecha_inicio']").change( function()
		{changeCampoFecha("#form_abm input[name='fecha_inicio']", "#form_abm input[name='fecha_fin']", 1);});
	jQuery("#form_abm input[name='fecha_fin']").change( function()
		{changeCampoFecha("#form_abm input[name='fecha_inicio']", "#form_abm input[name='fecha_fin']", 2);});


	// Filas '.capacidad'
	jQuery(".capacidad")
		.hover
			(
			function () { jQuery(this).addClass("fila_hover"); },
			function () { jQuery(this).removeClass("fila_hover");}
			)
		.click(function()
			{
			// Habilito el boton 'Eliminar'.
			jQuery("button[name='eliminar']").removeAttr('disabled','disabled');

			// Muestro el cartel de espera.
			msjLoading("table_resultados",true);

			// Busco los datos de la capacidad.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/capacidades-uteco.jsp',
						dataType: 'json',
						data: {'service': 'load',
							   'id': this.id,
							   'timestamp': timestamp()},
						success: success_load_capacidad,
						error: error_load_capacidad
						});

			return false;
			});



	// Boton 'Crear capacidad'.
	jQuery("button[name='alta']").click(function()
        {
		// Limpio todos los campos.
		jQuery("#form_abm [name='id']").val("");
		jQuery("#form_abm [name='capacidad']").val("");
		jQuery("#form_abm [name='fecha_inicio']").val("");
		jQuery("#form_abm [name='fecha_fin']").val("");

		// Deshabilito el boton 'Eliminar'.
		jQuery("button[name='eliminar']").attr('disabled','disabled');

		// Muestro el formulario.
		jQuery('#div_resultados').hide("blind", {}, 300, function()
			{ jQuery('#table_edicion').show("blind", {}, 300); });

		return false;
		});



	// Boton 'Cancelar'.
    jQuery("button[name='cancelar']").click(function()
        {
		jQuery('#table_edicion').hide("blind", {}, 300, function()
			{ jQuery('#div_resultados').show("blind", {}, 300); });

		return false;
		});



	// Boton 'Eliminar'.
	jQuery("button[name='eliminar']").click(function()
			{
			// Muestro el cartel de espera.
			msjLoading("table_edicion",true);

			// Elimino el registro.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/capacidades-uteco.jsp',
						dataType: 'json',
						data: {'service': 'delete',
							   'id': jQuery("#form_abm input[name='id']").val(),
							   'timestamp': timestamp()},
						success: success_abm_capacidad,
						error: error_abm_capacidad
						});

			return false;
			});



	// Botones 'Guardar'.
	jQuery("#form_abm button[name='guardar']").click(function()
			{
			// Verifico que la capacidad no este en blanco y sea un numero.
			var capacidad = jQuery("#form_abm input[name='capacidad']").val().replace(/\./g, '');

			if( capacidad.length == 0 )
				{
				mostrarMsj("Error","Debe ingresar la capacidad");
				return false;
				}

			while(capacidad.indexOf(",") >= 0) {capacidad = capacidad.replace(".","");}
			if( isNaN(capacidad) )
				{
				mostrarMsj("Error","El valor que ingreso como capacidad no es un numero");
				return false;
				}

			// Verifico que las fechas no esten en blanco.
			var fecha1 = convertirFecha( jQuery("#form_abm input[name='fecha_inicio']").val() );
			var fecha2 = convertirFecha( jQuery("#form_abm input[name='fecha_fin']").val() );

			if( fecha1 == null || fecha2 == 0)
				{
				mostrarMsj("Error","Debe ingresar las fechas de inicio y de fin en formato dd/MM/yyyy");
				return false;
				}

			if( fecha1.getTime() > fecha2.getTime() || new Date().getTime() - fecha1.getTime() > 86400000)
				{
				mostrarMsj("Error","La fecha de inicio debe ser menor a la fecha de fin y mayor a la fecha actual");
				return false;
				}


			// Muestro el cartel de espera.
			msjLoading("table_edicion",true);

			// Guardo los datos.
			jQuery.ajax({
						type: 'POST',
						url: 'svcs/capacidades-uteco.jsp',
						dataType: 'json',
						data: {'service': 'save',
							   'id': jQuery("#form_abm input[name='id']").val(),
							   'uteco_id': jQuery("#form_abm [name='uteco_id']").val(),
							   'capacidad': capacidad,
							   'fecha_inicio': jQuery("#form_abm input[name='fecha_inicio']").val(),
							   'fecha_fin': jQuery("#form_abm input[name='fecha_fin']").val(),
							   'timestamp': timestamp()},
						success: success_abm_capacidad,
						error: error_abm_capacidad
						});

			return false;
			});

	jQuery("#form_uteco button[name='guardar']").click(function()
		{
		jQuery("#form_uteco").submit();
		return false;
		});
    });





function success_load_capacidad(data, code, xmlHttpRequest)
	{
	// Pongo los datos en el formulario.
	jQuery("#form_abm input[name='id']").val(data.id);
	jQuery("#form_abm input[name='capacidad']").val(formatoNumero(data.capacidad));
	jQuery("#form_abm input[name='fecha_inicio']").val(data.fecha_inicio);
	jQuery("#form_abm input[name='fecha_fin']").val(data.fecha_fin);

	jQuery("#form_abm select[name='uteco_id'] option").removeAttr("selected");
	jQuery("#form_abm select[name='uteco_id'] option[value='" + data.uteco_id + "']").attr("selected", "selected");

	// Saco el cartel de espera.
	msjLoading("table_resultados",false);

	// Muestro el formulario.
	jQuery('#div_resultados').hide("blind", {}, 300, function()
		{ jQuery('#table_edicion').show("blind", {}, 300); });
	}

function error_load_capacidad(xmlHttpRequest, type)
	{
	// Saco el cartel de espera y muestro el error.
	msjLoading("table_resultados",false);
	mostrarMsj("Error","No se pudo establecer la conexión con el servidor: " + type + " " + xmlHttpRequest.status + " (" + xmlHttpRequest.statusText + ")");
	}



function success_abm_capacidad(data, code, xmlHttpRequest)
	{
	// Saco el cartel de espera.
	msjLoading("table_edicion",false);

	// Verifico si la operacion fue exitosa o no.
	if(data.code != '0')
		{ mostrarMsj("Error",data.msj); }
	else
		{ document.location.href = document.location.href; }
	}

function error_abm_capacidad(xmlHttpRequest, type)
	{
	// Saco el cartel de espera y muestro el error.
	msjLoading("table_edicion",false);
	mostrarMsj("Error","No se pudo establecer la conexión con el servidor: " + type + " " + xmlHttpRequest.status + " (" + xmlHttpRequest.statusText + ")");
	}